package cn.tedu._05weibo.comment.response;


// 统一响应结果类型

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonResult {
    private Integer state;// 状态码
    private String message;// 消息
    private Object data;// 数据
    //private StatusCode statusCode;// 状态码

    // 适用于不需要返回具体数据的Controller方法
    public JsonResult(StatusCode statusCode) {
        this.state = statusCode.getState();
        this.message = statusCode.getMessage();
    }

    // 适用于需要返回具体数据的Controller方法
    public JsonResult(StatusCode statusCode, Object data) {
        this.state = statusCode.getState();
        this.message = statusCode.getMessage();
        this.data = data;
    }

    /**
     * 定义2个静态方法:用于操作成功的场景
     *  1.操作成功,有具体数据返回;
     *  2.操作成功,没有具体数据返回;
     */
    //1.操作成功,有具体数据返回;
    public static JsonResult success(Object data) {
        return new JsonResult(StatusCode.OPERATION_SUCCESS, data);
    }
    //2.操作成功,没有具体数据返回;
    public static JsonResult success() {
        return new JsonResult(StatusCode.OPERATION_SUCCESS);
    }

}
